package com.wx.learn;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/**
 * List子接口的使用
 * 特点：1. 有序 有下表  2.可以重复
 */
public class ListDemo3 {
    public static void main(String[] args) {
        // 创建集合对象
        List list = new ArrayList();
        // 1.添加元素
        list.add("pingguo");
        list.add("xiaomi");
        list.add(0, "huawei");
        System.out.println("个数："+ list.size() + "  " +list.toString());
        // 2.删除元素
//        list.remove("pingguo");
//        list.remove(0);
//        System.out.println("删除之后: "+list);

        // 3.遍历
        // 3-1.for遍历 for
        System.out.println("-------------3-1.使用for遍历--------------");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        // 3-2.用增强for遍历 iter
        System.out.println("--------------3-2.用增强for遍历---------------");
        for (Object obj : list) {
            System.out.println(obj);
        }
        // 3-3.使用迭代器遍历
        System.out.println("--------------3-3.使用迭代器遍历---------------");
        Iterator itl = list.iterator();
        while (itl.hasNext()) {
            System.out.println(itl.next());
        }
        // 3-4.使用列表迭代器
        // 和Iterator区别,ListIterator可任意方向遍历,添加、删除、修改元素
        System.out.println("----------------3-4.使用列表迭代器----------------");
        ListIterator itlr = list.listIterator();
        System.out.println("-----------ListIterator从前往后------------");
        while (itlr.hasNext()) {
            System.out.println(itlr.nextIndex()+": "+ itlr.next());
        }
        System.out.println("-------------ListIterator从后往前-------------");
        while (itlr.hasPrevious()){
            System.out.println(itlr.previousIndex()+": "+itlr.previous());
        }

        // 4.判断
        System.out.println("----------------4.判断----------------");
        System.out.println(list.contains("pingguo"));
        System.out.println(list.isEmpty());

        // 5.获取位置
        System.out.println("--------------5.获取位置----------------");
        System.out.println(list.indexOf("huawei"));
    }
}
